Reducing curtailment of wind power generation

ABSTRACT

Historical electrical power output measurements of a wind turbine for a time period immediately preceding a specified past time are received. Historical wind speed micro-forecasts for the geographic location of the wind turbine, for a time period immediately preceding the specified past time and for a time period immediately following the specified past time are received. Based on the historical electrical power output measurements and the historical wind speed micro-forecasts, a trained machine learning model for predicting wind power output of the wind turbine is generated. Real-time electrical power output measurements of the wind turbine and real-time wind speed micro-forecasts for the geographic location of the wind turbine are received. Using the trained machine learning model with the real-time electrical power output measurements of the wind turbine and the real-time wind speed micro-forecasts, a wind power output forecast for the wind turbine at a future time is outputted.

BACKGROUND

The present invention relates generally to the field of wind powergeneration, and more particularly to predicting wind power generation ona computer.

Wind power is the use of air flow through wind turbines to mechanicallypower generators for electricity. Wind power is a renewable energyresource, but it is intermittent and uncontrollable. Although the powerproduced by wind tends to be consistent from year to year, it exhibitssignificant variation over shorter time scales. Wind is therefore oftenused in conjunction with other electric power sources to give a reliablesupply. Due to the erratic nature of wind power, electric utilities mayfind it difficult to adequately integrate wind power into the electricgrid, resulting in involuntary curtailment.

Wind power curtailment is a reduction in the output of a wind turbine orwind farm into the electric grid from what it could otherwise produce,given available wind, and is usually involuntary. Curtailment istypically induced by grid operators or utilities because of transmissioncongestion or lack of transmission access, or due to oversupply of powerduring low load periods, for example at night when substantial windpower may be generated but demand is low. As involuntary curtailment maylead to a loss of revenue, curtailment management is an important toolin maintaining system energy balance.

Wind farms handle curtailment in various ways. One way is to simply takesome wind turbines offline or orient them away from the wind direction.Another is to use some of the produced energy to create reverse torquethat reduces the speed of a turbine blade. Wind farms may also redirectsome of the excess generated electricity to storage batteries.Typically, a wind farm may receive a signal from a grid operator orutility to curtail power to a specific level and may cause the windturbines to reduce their output accordingly.

In a smart grid, grid operators strive to ensure that power plantsproduce the right amount of electricity at the right time, in order toconsistently and reliably meet demand. Because the grid has limitedstorage capacity, maintaining a balance between electricity supply anddemand prevents blackouts and other cascading problems. Grid operatorstypically send a signal to power plants every few seconds to control thebalance between the total amount of power injected into the grid and thetotal power withdrawn. Sudden power generation shortfalls or excessesdue to intermittency may require a grid operator to maintain morereserve power in order to quickly act to keep the grid balanced.

As mentioned, one approach to dealing with wind power intermittency isthe use of storage technology, such as large-scale batteries, to storeexcess power or augment supply in case of a shortfall. However,batteries are expensive and susceptible to wear when subjected toexcessive cycling. More accurate and flexible power output models may beadvantageous in reducing such cycling.

A method of accurately predicting the output of wind power plants forvarious future time periods would be a valuable tool, allowing wind farmowners to operate more economically, for example by reducing involuntarycurtailment due to oversupply, and allowing grid operators and utilitiesto reduce the costs of integrating sources of wind power generation intothe existing grid, for example, by scaling down conventional resourceswhen sufficient wind generation is predicted.

SUMMARY

Historical electrical power output measurements of a wind turbine for atime period immediately preceding a specified past time are received,wherein the historical electrical power output measurements of a windturbine for a time period immediately preceding a specified past timecomprise a predefined number of measurements at equal time intervals,ending at the specified past time. Historical wind speed micro-forecastsfor the geographic location of the wind turbine, for a time periodimmediately preceding the specified past time and for a time periodimmediately following the specified past time, are received, wherein thehistorical wind speed micro-forecasts comprise a predefined number ofwind speed micro-forecasts at equal time intervals, ending at thespecified past time, and a predefined number of wind speedmicro-forecasts at equal time intervals beginning with the specifiedpast time, respectively. Based on the historical electrical power outputmeasurements and the historical wind speed micro-forecasts, a trainedmachine learning model for predicting wind power output of the windturbine is generated, wherein the machine learning model is one of: aregression neural network, a support vector regression (SVR) model, or alinear regression model. Real-time electrical power output measurementsof the wind turbine and real-time wind speed micro-forecasts for thegeographic location of the wind turbine are received, wherein thereal-time electrical power output measurements of the wind turbinecomprise a predefined number of measurements at equal time intervals,ending at the current time, and wherein the real-time wind speedmicro-forecasts for the geographic location of the wind turbine comprisea predefined number of wind speed micro-forecasts at equal timeintervals, ending at the current time, and a predefined number of windspeed micro-forecasts at equal time intervals, beginning with thecurrent time. Using the trained machine learning model with thereal-time electrical power output measurements of the wind turbine andthe real-time wind speed micro-forecasts, a wind power output forecastfor the wind turbine at a future time is output.

In response to determining that an oversupply of wind power would begenerated, based in part on the predicted wind power output of the windturbine, wind power output of the wind turbine is curtailed.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts a functional block diagram of a wind power prediction andcontrol system, in accordance with an embodiment of the presentinvention.

FIG. 2 illustrates a training matrix for training a machine learningmodel to predict wind power, in accordance with an embodiment of thepresent invention.

FIG. 3 is a schematic diagram depicting a prediction model based on aneural network.

FIGS. 4a and 4b are block diagrams, each depicting workflow inpredicting wind power in accordance with an embodiment of the presentinvention.

FIGS. 5a and 5b are additional block diagrams, each depicting workflowin predicting wind power in accordance with an embodiment of the presentinvention.

FIG. 6 is a flowchart depicting various operational steps of a windpower prediction program, in accordance with an embodiment of thepresent invention.

FIG. 7 is a schematic diagram illustrating a system for predicting andcontrolling power generation of a wind farm, in accordance with anembodiment of the invention.

FIG. 8 is a flowchart depicting various operational steps performed inpredicting and controlling electrical power generation of a wind farm,in accordance with an embodiment of the invention.

FIG. 9 is a functional block diagram illustrating a data processingenvironment, in accordance with an embodiment of the present invention.

DETAILED DESCRIPTION

The term wind farm as used herein refers to an installation or area ofland on which wind turbines are installed in order to generateelectricity, which is usually sold to energy companies. Wind farmstypically consist of many individual wind turbines, in some caseshundreds, connected to an electric power transmission network (728, FIG.7).

Machine learning is a field of computer science and statistics thatinvolves the construction of algorithms that learn from and makepredictions about data. Rather than following explicitly programmedinstructions, machine learning methods operate by building a model usingexample inputs with known outputs, and using the model to makepredictions or decisions about other inputs.

In supervised machine learning a function is inferred from trainingdata. Rather than being explicitly given, the function is represented asa model having various parameters, which generates specified outputswhen given appropriate inputs. Training data consists of a set oftraining examples, each of which includes an input and a known output.During training, or learning, parameters of the model are adjusted,usually iteratively, so that inputs match the outputs in the trainingexamples to some degree of accuracy, based on a predefined metric. Themodel can then be used to predict the outputs for unseen examples.Typically, the accuracy of the model is evaluated after training bymeasuring its performance on a test dataset that is separate from thetraining set.

Supervised machine learning algorithms are usually split into twocategories: classification and regression. With classificationalgorithms, the output is a category. In regression, the output is anumerical value and the goal is to predict a continuous measurement foran observation. Examples of regression algorithms for supervised machinelearning include linear regression, regression neural networks, andsupport vector regression (SVR).

Neural networks are machine learning models inspired by, and partiallymodeled on, biological neural networks. They are capable of modeling andprocessing complex, nonlinear relationships between multiple inputs andoutputs. These networks are represented as systems of interconnected“neurons,” computational units that send messages to each other. Theneurons are connected via paths called “synapses.” The collection ofneurons and synapses is typically organized into three main parts: aninput layer, one or more hidden layers, and an output layer. The numberof neurons in the input layer corresponds to the number of inputs to theneural network; the number of neurons in the output layer corresponds tothe number of outputs generated by the neural network. The number ofneurons in the hidden layers may vary, but typically all hidden layerswill have the same number of neurons. In a feedforward neural network,the messages, which are computed values, move forward from the inputneurons through the neurons in the hidden layers, to the output neurons.

As used herein, the term machine learning model refers to a supervisedmachine learning model that implements a regression algorithm. The termneural network refers to a regression neural network.

Synapses take an input and multiply it by a numerical weighting factor,indicating the strength of the input in determining the output. Neuronsgenerally sum the weighted values of all incoming synapses and apply an“activation” function to generate an output. Nonlinear activationfunctions allow neural networks to model complex, nonlinear patternsthat neural networks with linear activation functions might not be ableto discern. Typical activation functions include linear, sigmoid, andhyperbolic tangent (tan h).

Training a neural network involves calibrating the weights iterativelyby repeating two key steps, forward propagation and back propagation,which together constitute an optimization procedure. In forwardpropagation, a set of weights is used to calculate an output from inputdata. For the first forward propagation, the initial set of weights maybe selected randomly. In back propagation, the error of the output ismeasured and the weights are adjusted to decrease the error. A cost (orloss) function is used to estimate the size of the error. Typical costfunctions are the mean absolute error (MAE) and the mean squared error(MSE), i.e., the mean of the L1-norm or L2-norm of the differences ofall computed output values and corresponding known values. Backpropagation may be effected by a known optimization method, for examplegradient descent or BFGS (the Broyden-Fletcher-Goldfarb-Shannoalgorithm).

Forward and back propagation may be repeated until the weights arecalibrated to accurately predict the outputs in a set of trainingexamples. To avoid overfitting, the model is usually trained using asubset of the training examples and then tested on a test set thatincludes the remaining training examples. Overfitting may occur when themodel has too many parameters relative to the number of inputs, whichmay reduce accuracy on examples that are not in the training set.

A hyperlocal weather forecast, also known as a weather micro-forecast,is a highly localized, detailed, short-term prediction of the weather ata given location, for example in a region including a wind farm. Forexample, a hyperlocal weather forecast may predict the weather in asquare kilometer in 10-minute intervals or less, 72 hours or more, aheadof time. Examples of hyperlocal weather forecasting systems are theNational Weather Service's High-Resolution Rapid Refresh model and IBM®Deep Thunder™, which has a resolution of 0.2- to 1.2-mile radius. Bothare based on the Weather Research and Forecasting (WRF) model, a freelyavailable numerical weather prediction system that was developed by U.S.government agencies and universities.

Historical data including measurements of wind speed at variouslocations is available, for example, as part of WRF, and from variousonline databases. For example, the National Renewable Energy Laboratory(NREL) maintains the Wind Integration National Database (WIND). The WINDdata is generated on a 2-km by 2-km grid with a 20-m resolution from 10m to 160 m above ground, and includes meteorological and power data inintervals of 5 minutes.

A weather micro-forecast is generally computed using meteorologicalobservational data that is used as input to a numerical weatherprediction model. The meteorological data may include sensor data fromsurface stations, commercial aircraft, satellites, and weather balloons.

Embodiments of the present invention disclose a computer-implementedmethod, computer program product, and system for predicting andcontrolling electrical power output of a wind farm. Based on historicalwind speed or electrical power measurements of a wind turbine, andhistorical wind speed micro-forecasts, a machine learning model isgenerated that predicts wind power output, given real-time wind speed orwind power measurements of the turbine, and wind speed micro-forecastdata. Based on the wind power predictions, output of the wind farm maybe regulated so as to reduce curtailment.

FIG. 1 is a functional block diagram of a wind power prediction andcontrol system 100, in accordance with an embodiment of the presentinvention. Wind power prediction and control system 100 includescomputing device 110. Computing device 110 represents a computingenvironment or platform that hosts wind power prediction program 112 andcontrol program 118. In various embodiments, computing device 110 may bea laptop computer, netbook computer, personal computer (PC), a desktopcomputer, or any programmable electronic device capable of hosting windpower prediction program 112 and control program 118, in accordance withembodiments of the invention. In various embodiments, wind powerprediction program 112 and control program 118 may be hosted ondifferent computing devices 110.

In an embodiment of the invention, computing device 110 may host asupervisory control and data acquisition (SCADA) system or otherindustrial control system, for example control program 118. A SCADAsystem is a category of software applications used for transferring dataand controlling equipment remotely, which may be used to send signals inreal time that monitor and control a wind farm.

Computing device 110 may include internal and external hardwarecomponents, as described in further detail below with reference to FIG.9.

In an exemplary embodiment of the invention, computing device 110includes wind power prediction program 112, control program 118, anddatastore 122.

Datastore 122 represents a store of data that may be used to train andtest a prediction model, in accordance with an embodiment of the presentinvention. For example, datastore 122 may include historical datarelated to weather micro-forecasts and observed power generation for awind farm. Datastore 122 may also store parameters of one or moremachine learning models generated by wind power prediction program 112.Datastore 122 may also serve as a repository for micro-forecast data forthe wind farm that may be used to predict future wind power output.Datastore 122 may reside, for example, on a computer readable storagemedia 908 (FIG. 9) and may be distributed over a network.

Wind power prediction program 112 operates generally to construct,train, and apply a machine learning model that predicts wind poweroutput from a wind farm, for example, wind farm 716 (FIG. 7). Wind powerprediction program 112 is trained using historical measurements of windspeed or wind power, and historical wind speed micro-forecasts, and,given real-time measurements of wind speed or wind power, and wind speedmicro-forecast data, predicts wind power output at future times. Windpower prediction program 112 may include training module 114 andprediction module 116.

Training module 114 operates to receive historical measurements andhistorical wind speed micro-forecasts, corresponding to a wind turbine,from datastore 122 and build a prediction model. In one embodiment, thehistorical measurements are electrical power output measurements of awind turbine; in another embodiment, the historical measurements arewind speed measurements at a wind turbine. Training module 114 maycombine the historical measurements and wind speed micro-forecasts intoa training matrix, described in more detail below, each of whose rowsincludes one training example. Training module 114 may use the trainingmatrix to construct and calibrate the prediction model. In an embodimentof the invention, the prediction model is a wind power prediction model;in another embodiment, the model is a wind speed prediction model. Forexample, the prediction models may be feedforward neural networks. Inthis case, training module 114 constructs the prediction model byfixing, for the neural network, the number of input neurons, the numberof output neurons, the number of hidden layers, and the number ofneurons in the hidden layers, and selecting an initial set of weights.Training module 114 then calibrates the model using the training matrixvia forward and back propagation.

Prediction module 116 operates generally to predict future wind poweroutput of a wind turbine 720 (FIG. 7) using the prediction model createdby training module 114, given real-time wind power or wind speed dataand wind speed micro-forecast data for the geographic location of thewind turbine, according to various embodiments of the invention.Prediction module 116 receives either wind power or wind speedmeasurements, corresponding to the inputs that were used by trainingmodule 114 to train the model, and applies the trained wind powerprediction module to compute predicted wind power output for a timeperiod in the future, for example, at intervals up to six hours in thefuture.

Control program 118 operates generally to control wind power productionof the wind farm 716 (FIG. 7), based on the output of prediction module116. For example, control program 118 may cause the wind farm to curtailpower production in response to a prediction of oversupply. For example,control program 118 may cause one or more wind turbines 720 to be takenoffline or to be oriented away from the wind direction. Alternatively,control program 118 may cause some of the energy produced by a windturbine to be used to create reverse torque that reduces the speed ofthe turbine blade. Control program 118 may also cause wind farm 716 toredirect some of the excess generated electricity to one or more storagebatteries.

FIG. 2 shows an example training matrix X 200, in accordance with anexemplary embodiment of the invention. Training matrix X 200 may beused, for example, to train a wind power prediction model. Trainingmatrix X 200 has n_(AP) columns corresponding to the number of recentpast wind power measurements input to the prediction model; n_(DP)columns corresponding to the number of recent past wind speedmicro-forecast values input to the model; and n_(DF) columnscorresponding to the number of immediate future wind speedmicro-forecast values input to the model. The m rows of X includetraining examples used to train the model. Thus, X is an m×n matrix withm rows and n columns, where n=n_(AP)+n_(DP)+n_(DF) is the total numberof features, i.e., input parameters, used in the prediction model.

In another embodiment of the invention, the n_(AP) columns of trainingmatrix X 200 contain recent past wind speed measurements.

As used herein, recent past measurements relative to a given time trefer to measurements at a series of times that immediately precede t(and may end with t). For training data, t may be any past time. Forpredicted power output, t is usually the current time. Typically, thesemeasurements are taken at equal time intervals, of the form t−k·Δt,t−(k−1)·Δt . . . , t−Δt, t, for some predefined integer k, where Δt is afixed time interval. Similarly, recent past wind speed forecastsrelative to a time t refer to wind speed forecasts for a series of timesthat immediately precede t (and may end with t). Typically, theseforecasts are for an evenly spaced series of times, as described above.Immediate future wind speed forecasts relative to a time t denote windspeed forecasts at a series of times that immediately follow t (and maybegin with t). Typically, these forecasts are for an evenly spacedseries of times, of the form t+Δt, . . . , t+(k−1)·Δt, t+k·Δt, for somepredefined integer k, where Δt is a fixed time interval.

The m training examples for the set of n features may be obtained fromthe data, for example, by sliding a window of width n centered on agiven time through the input dataset.

Since in some cases curtailment may affect the output of a wind turbine720 (FIG. 7), training examples will typically be based on the possible,or producible, power generated by the wind turbine, rather than theactive, or actual, power produced. Modern wind turbines typically makeboth types of power values available. The resulting predicted wind poweris then the power that is possible to produce, independent ofcurtailment.

The values of the model parameters n_(AP), n_(DP), and n_(DF) may bechosen, for example, by systematically examining the impact of variouschoices on the accuracy and complexity of the prediction model.Increasing them may increase prediction accuracy as well as algorithmrun time. However, accuracy tends not to significantly increase whenparameter values are increased beyond a certain point referred to as thepoint of saturation. A typical value of n_(AP) is 6, corresponding tomeasurements at 6 past times. If measurements are taken every 10minutes, for example, then this corresponds to looking back one hour.

In an embodiment of the invention, the prediction model generates windpower predictions at a predefined number h of “horizons,” or intervalsin the future. For example, the prediction model may generate short-termpredictions, e.g., at 10-minute time intervals from 0 to 6 hours in thefuture. In another embodiment, the prediction model generates wind speedpredictions at a predefined number h of horizons in the future.

In an embodiment of the invention, the prediction model is a neuralnetwork. In this case, in addition to n_(AP), n_(DP), and n_(DF), thenumber l of hidden layers and the number q of neurons per hidden layerin the neural network model must be selected. As with the other modelparameters, these may be chosen by observing their impact whilesystematically varying them.

Increasing the parameters n_(AP), n_(DP), n_(DF), l, and q beyond acertain point may lead to overfitting, which may reduce accuracy onexamples not in the training set while increasing the complexity of themodel. In order to prevent overfitting, the model may be calibratedusing one subset of the training examples and then systematically testedon a second, disjoint subset of the training examples.

For example, a typical approach to finding values for the parametersn_(AP), n_(DP), n_(DF), l, and q is as follows. The parameters aredivided into two groups, with Group I containing for n_(AP), n_(DP),n_(DF), and Group II containing l, and q. Group I indicates how muchdata is needed to make a good prediction. Group II indicates how largethe neural network should be in order to get the best prediction. Foreach choice of parameters in Groups I and II, the neural network istrained on a set of training examples, which determines the weights.Starting with small values, the parameters in Group I may be increasedstepwise until saturation, i.e., when using more data does notsignificantly improve the prediction. Initially, l may be 0 or 1 and qmay be equal to n. Once saturation is reached while varying theparameters in Group I, the parameters in Group II may be increased in astepwise fashion, using the Group I parameters that were justdetermined, until the prediction begins to worsen.

If there are n input features, then the input layer of the neuralnetwork will have n neurons. The number of neurons in the output layercorresponds to the number h of “horizons,” or intervals in the future,that are to be predicted. For example, if wind power predictions are tobe generated at 10 minute intervals for up to 6 hours, i.e., short-termpredictions, then there will be 360 output neurons. The number ofneurons in different hidden layers may vary, but typically all hiddenlayer will have the same number q of neurons.

An activation function must also be chosen for the neural network. Theactivation function selected for the input layer may be different fromthe one chosen for the hidden layers. For example, a sigmoid or tan hfunction may be used for the input layer and a linear activationfunction may be used for the hidden layers. The choice of l and q maydepend on the choice of activation functions, as well as on the choiceof cost function.

In an embodiment of the invention, wind speed measurements are takenwith an anemometer, for example anemometer 718 (FIG. 7), installed onone or more wind turbines 720 of a wind farm 716 every 10 minutes over alengthy period (e.g., a year or more). The anemometers may be installedat a range of heights up to the hub height of the wind turbines.Alternatively, the anemometers may be installed on one or moremeasurement towers, or “met masts,” on the wind farm. In an embodiment,wind speed measurements are converted to wind power values using themanufacturer's power curve (the actual power measurements may beslightly lower than the theoretical power due to suboptimal wind turbineblade orientation). In another embodiment, a trained neural network isused to convert wind speed measurements to wind power data. Hyperlocal(e.g., within a 0.2-1.2-mile radius) wind velocity forecasts for eachwind turbine are obtained from a hyperlocal weather forecasting engine.The forecasts may be made, for example, for one day ahead. Wind speedmay be derived from wind velocity at the height of the wind turbine hub.The altitude is important to note, because wind turbines are influencedby wind at the altitude of the turbine, which may have a differentvelocity from the wind at ground level.

In an embodiment, if gaps occur in the input datasets, for example ifone or more historical wind speed or wind power measurements aremissing, the missing data may be generated by linear interpolation, orby another interpolation scheme, before using the data.

Each row in the training matrix X 200 supplies n input data values forthe n neurons in the input layer of the neural network. The neuralnetwork may be viewed as a function ƒ that maps each row of X to avector of length h containing the values of the h neurons in the outputlayer. The computed output vector may be expressed as the actual value yplus a prediction error: y+ε. Thus, the goal is to find the weights thatminimize ∥ƒ(X)−Y∥, where Y is a matrix with m rows and h columns, witheach row containing the output for the corresponding input row in X, and∥·∥ represents the chosen cost function, for example, MAE or MSE.

FIG. 3 is a schematic diagram 300 depicting a prediction model based ona neural network, in accordance with an embodiment of the presentinvention. Row vector 310 represents the n inputs to the neural networkand corresponds to one row of training matrix X 200 (FIG. 2). Each inputof the n inputs is entered into a corresponding neuron in the inputlayer 312 of the neural network 320. The neurons in input layer 312 areconnected to neurons in the first hidden layer 314. Typically, eachneuron in one layer is connected to each neuron in the next layer. Theremay be multiple hidden layers; only one is shown in diagram 300. Rowvector 318 represents the outputs of the model, which are wind powerforecasts. Each neuron of the h neurons in the output layer 316corresponds to a prediction horizon, i.e., a future time for which themodel generates a wind power or wind speed forecast.

FIGS. 4a-4b and 5a-5b are block diagrams depicting functional componentsof a system to predict wind power output, in accordance with variousembodiments of the present invention. The embodiments correspond tovarious machine learning models for predicting wind power output. Themachine learning models may be, for example, neural networks. Thedifferent prediction models may be represented in short-hand formaccording to the types of input data they receive, with ‘A’ denotingactual measurements and ‘D’ denoting micro-forecast values. Subscripts Sand P refer to wind speed and wind power, respectively. Thus, forexample, FIG. 4a corresponds to a model, denoted by A_(D)D_(S), forwhich the inputs are wind power measurements 402 and wind speedmicro-forecasts 404. Using this convention, the model represented inFIG. 4 b is A_(S)D_(S) and for FIG. 5a the model is A_(P)D_(P). For FIG.5b the model is also of type A_(S)D_(S); however, in FIG. 4b the inputsare directly mapped to wind power by the machine learning model, whilein FIG. 5b the inputs are first mapped to wind speed and then convertedto wind power using a power curve, as described below. Wind powermeasurements 402 and wind speed measurements 410 may include recent pastwind speed measurements, relative to selected times in the past. Windspeed micro-forecasts 404 may include both recent past wind speedforecasts and immediate future wind speed forecasts, relative toselected times in the past.

In FIGS. 4a and 4b , as well as 5 a, the machine learning model is awind power prediction model 406 that outputs a wind power forecast 408.In FIG. 5b the model is a wind speed prediction model 514 that outputs awind speed forecast 516. Wind speed forecast 516 may be converted to awind power forecast 408 by a trained power curve model 518, as describedbelow.

As an example, for the model A_(D)D_(S) depicted in FIG. 4a , for whichthe inputs are wind power measurements 402 and wind speedmicro-forecasts 404, suppose that the numbers of inputs for the modelare n_(DP)=n_(DF)=4 and n_(AP)=3. Then the wind speed micro-forecasts404 include four recent past wind speed forecasts 403 a and fourimmediate future wind speed forecasts 403 b, relative to a given time t.The wind power measurements 402 include three recent past wind powermeasurements 401 relative to t. Wind power prediction model 406 may betrained using training examples that include available measurements andforecasts at times in the past. For example, assuming 10-minute timeintervals, wind power prediction model 406 may be trained using data fortimes tin the past for which the following data is available:

-   -   a. wind power measurements 502 at times t−30, t−20, t−10, t        (recent past wind power measurements 401).    -   b. wind speed micro-forecasts 504 at times t−40, . . . , t−10, t        (recent past wind speed forecasts 403 a) and at t+10, . . . ,        t+40 (immediate future wind speed forecasts 403 b); and    -   c. wind power measurements 402 at a given number of “look-ahead”        times, e.g., at t+T, where T=10, 20, . . . , 360 minutes (36        look-ahead times).        Trained wind power prediction model 406 then maps wind power        measurements 402 and wind speed forecasts 404 to wind power        forecasts 408 at the times t+T.

For example, at noon a wind farm owner or electric grid operator mightenter a sequence of actual wind power measurements 402 that end at noon,along with wind speed forecasts 404 at a sequence of times before andafter noon into trained wind power prediction model 406, and wouldreceive wind power forecasts 408 for a sequence of times after noon.

FIG. 4b depicts a model A_(S)D_(S) that differs from model A_(P)D_(S)depicted in FIG. 4a in that, along with wind speed forecasts 404, theinput measurements are wind speed measurements 410 rather than windpower measurements 402. As with the model depicted in FIG. 4a , the windspeed micro-forecasts 404 include recent past wind speed forecasts 403 aand immediate future wind speed forecasts 403 b. The wind speedmeasurements 410 include recent past wind speed measurements 405.

In FIG. 5a , the wind power data input to wind power prediction model406 is obtained by applying the manufacturer's power curve 512, whichconverts wind speed to power output for a wind turbine, to the windspeed micro-forecasts 404, which include recent past wind speedforecasts 403 a and immediate future wind speed forecasts 403 b. If themanufacturer's power curve 512 is not available, a trained power curvemodel 518 may be used to estimate the power curve, as discussed below.The outputs from manufacturer's power curve 512 or trained power curvemodel 518 are recent past wind power forecasts 507 a and immediatefuture wind power forecasts 507 b, which are then input to wind powerprediction model 406.

In FIG. 5b , with model A_(S)D_(S), wind speed prediction model 514outputs a wind speed forecast 516. In an embodiment of the invention, atrained power curve model 518 may then be used to generate a wind powerforecast 408 from output wind speed forecast 516, or, alternatively themanufacturer's power curve 512 could be used. As with the model depictedin FIG. 4b , the inputs are wind speed forecasts 404, which includerecent past wind speed forecasts 403 a and immediate future wind speedforecasts 403 b, and wind speed measurements 410, which include recentpast wind speed measurements 405.

The models A_(P)D_(P) and A_(D)D_(S) depicted in FIGS. 5a and 5b ,respectively, may be advantageous when, for example, an electric utilitydoes not have anemometer measurements but does have wind powermeasurements available.

A manufacturer's power curve 512 may not always be available for eachwind turbine. In this case, a neural network may be used to estimate themapping between wind speed and wind power output. The correspondingneural network has one input neuron and one output neuron, since it mapsscalars to scalars. A suitable cost function is MAE. The values of theparameters q and 1 must be chosen, and activation functions for theinput and hidden layers must be selected. For example, linear activationfunctions for the hidden layers and a sigmoid or tan h activationfunction for the input layer may be appropriate. Typical values for land q are in the range l>2 and q>3; for example, l=6 and q=22. Findingnear optimal values may require a systematic search of the (l,q)parameter space, for example by alternately calibrating the model on asubset of the training examples and then testing the model on a disjointtest subset of the training examples.

In other embodiments of the invention, a different machine learningmodel, for example support vector regression (SVR), may be used toestimate the mapping between wind speed and wind power output for a windturbine.

FIG. 6 is a flowchart depicting various operational steps performed bycomputing device 110 in executing wind power prediction program 112, inaccordance with several embodiments of the invention. Specifically, FIG.6 depicts how training module 114 constructs and calibrates a predictionmodel. Training module 114 receives historical measurements and windspeed micro-forecasts from datastore 122 and constructs training matrixX (step 602). In one embodiment, the historical measurements are windpower measurements; in another embodiment, the measurements are windspeed measurements. Training module 114 constructs a prediction model(step 604). In an embodiment, the prediction model is a wind powerprediction model; in other embodiments, the model is a wind speedprediction model. In various embodiments, the prediction model is afeedforward neural network. In this case, training module 114 constructsthe prediction model by selecting values for the parameters n_(AP),n_(DP), n_(DF), t, and q, as well as an initial set of weights. Trainingmodule 114 then calibrates the model using training matrix X via forwardand back propagation (step 606).

FIG. 7 is a schematic diagram illustrating a system 700 for predictingpower generation of a wind farm 716, in accordance with an embodiment ofthe invention. The system includes sensors for collecting meteorologicaldata in a region of the wind farm, which may include ground sensors suchas anemometer 718 and atmospheric sensors such as radiosondes 712attached, for example, to weather balloons 710, weather satellites 714,or commercial aircraft (not shown). Anemometers 718 may be attached toindividual wind turbines 720. The meteorological data may be used alongwith other data in a numerical weather model such as WRF to generatewind micro-forecasts for the wind farm. System 700 may also includepower meters 722 such as net meters for measuring power output of thewind farm, or power meters attached to individual wind turbines 720. Thesystem may also include one or more computer processors 726, for examplein a grid management system 724, for generating wind speedmicro-forecasts and power output data for the wind farm. The system mayalso include program instructions to be executed on one or more of thecomputer processors that implement a method for predicting andcontrolling wind power output, in accordance with an embodiment of thepresent invention, for example wind power prediction and control system100. The system may also include program instructions to be executed onone or more of the computer processors that receive wind power or windspeed measurements, and wind speed micro-forecasts for the wind farm,and predict wind power output of the wind farm for future timeintervals.

In an embodiment of the invention, grid management system 724 includes aSCADA server or other industrial control system.

FIG. 8 is a flowchart depicting various operational steps performed bysystem 700 (FIG. 7) in predicting power generation of a wind farm 716,in accordance with various embodiments of the invention. Power outputdata from power meters 722 and meteorological data from sensors such asradiosonde 712 and weather satellite 714, as well as wind speed datafrom anemometer 718, are received (step 810). A wind power outputprediction model, as described above, is generated (step 812). A windspeed micro-forecast for the wind farm for future time periods andreal-time wind power measurements or real-time wind speed measurementsare received (step 814). Power output for future time periods ispredicted, based on the wind power prediction model (step 816). Based onthe output of the wind power prediction model, grid management system724 may send a signal in real time to wind farm 716 that causes the windfarm to curtail wind power generation (step 818). For example, gridmanagement system 724 may, in case of a predicted surplus, cause some ofthe wind power generated by a wind turbine 720 to be stored.Alternatively, in case of a predicted shortfall, grid management system724 may supplement generated wind power with stored power.

FIG. 9 depicts a block diagram of components of a computing device 110,in accordance with an embodiment of the present invention. It should beappreciated that FIG. 9 provides only an illustration of oneimplementation and does not imply any limitations with regard to theenvironments in which different embodiments may be implemented. Manymodifications to the depicted environment may be made.

Computing device 110 may include one or more processors 902, one or morecomputer-readable RAMs 904, one or more computer-readable ROMs 906, oneor more computer readable storage media 908, device drivers 912,read/write drive or interface 914, network adapter or interface 916, allinterconnected over a communications fabric 918. Communications fabric918 may be implemented with any architecture designed for passing dataand/or control information between processors (such as microprocessors,communications and network processors, etc.), system memory, peripheraldevices, and any other hardware components within a system.

One or more operating systems 910, and one or more application programs928, for example, wind power prediction program 112, are stored on oneor more of the computer readable storage media 908 for execution by oneor more of the processors 902 via one or more of the respective RAMs 904(which typically include cache memory). In the illustrated embodiment,each of the computer readable storage media 908 may be a magnetic diskstorage device of an internal hard drive, CD-ROM, DVD, memory stick,magnetic tape, magnetic disk, optical disk, a semiconductor storagedevice such as RAM, ROM, EPROM, flash memory or any othercomputer-readable tangible storage device that can store a computerprogram and digital information.

Computing device 110 may also include a R/W drive or interface 914 toread from and write to one or more portable computer readable storagemedia 926. Application programs 928 on computing device 110 may bestored on one or more of the portable computer readable storage media926, read via the respective R/W drive or interface 914 and loaded intothe respective computer readable storage media 908.

Computing device 110 may also include a network adapter or interface916, such as a TCP/IP adapter card or wireless communication adapter(such as a 4G wireless communication adapter using OFDMA technology).Application programs 928 on computing device 110 may be downloaded tothe computing device from an external computer or external storagedevice via a network (for example, the Internet, a local area network orother wide area network or wireless network) and network adapter orinterface 916. From the network adapter or interface 916, the programsmay be loaded onto computer readable storage media 908. The network maycomprise copper wires, optical fibers, wireless transmission, routers,firewalls, switches, gateway computers and/or edge servers. The networkmay also employ power line communication.

Computing device 110 may also include a display screen 920, a keyboardor keypad 922, and a computer mouse or touchpad 924. Device drivers 912interface to display screen 920 for imaging, to keyboard or keypad 922,to computer mouse or touchpad 924, and/or to display screen 920 forpressure sensing of alphanumeric character entry and user s. The devicedrivers 912, R/W drive or interface 914 and network adapter or interface916 may comprise hardware and software (stored on computer readablestorage media 908 and/or ROM 906).

The present invention may be a system, a method, and/or a computerprogram product at any possible technical detail level of integration.The computer program product may include a computer readable storagemedium (or media) having computer readable program instructions thereonfor causing a processor to carry out aspects of the present invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, configuration data for integrated circuitry, oreither source code or object code written in any combination of one ormore programming languages, including an object oriented programminglanguage such as Smalltalk, C++, or the like, and procedural programminglanguages, such as the “C” programming language or similar programminglanguages. The computer readable program instructions may executeentirely on the user's computer, partly on the user's computer, as astand-alone software package, partly on the user's computer and partlyon a remote computer or entirely on the remote computer or server. Inthe latter scenario, the remote computer may be connected to the user'scomputer through any type of network, including a local area network(LAN) or a wide area network (WAN), or the connection may be made to anexternal computer (for example, through the Internet using an InternetService Provider). In some embodiments, electronic circuitry including,for example, programmable logic circuitry, field-programmable gatearrays (FPGA), or programmable logic arrays (PLA) may execute thecomputer readable program instructions by utilizing state information ofthe computer readable program instructions to personalize the electroniccircuitry, in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the blocks may occur out of theorder noted in the Figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

The programs described herein are identified based upon the applicationfor which they are implemented in a specific embodiment of theinvention. However, it should be appreciated that any particular programnomenclature herein is used merely for convenience, and thus theinvention should not be limited to use solely in any specificapplication identified and/or implied by such nomenclature.

The foregoing description of various embodiments of the presentinvention has been presented for purposes of illustration anddescription. It is not intended to be exhaustive nor to limit theinvention to the precise form disclosed. Many modifications andvariations are possible. Such modification and variations that may beapparent to a person skilled in the art of the invention are intended tobe included within the scope of the invention as defined by theaccompanying claims.

1. A method comprising: receiving, by a computer, historical electricalpower output measurements of a wind turbine for a time periodimmediately preceding a specified past time, wherein the historicalelectrical power output measurements of the wind turbine for a timeperiod immediately preceding a specified past time comprise a predefinednumber of measurements at equal time intervals, ending at the specifiedpast time; receiving, by the computer, historical wind speedmicro-forecasts for the geographic location of the wind turbine, for atime period immediately preceding the specified past time and for a timeperiod immediately following the specified past time, wherein thehistorical wind speed micro-forecasts comprise a predefined number ofwind speed micro-forecasts at equal time intervals, ending at thespecified past time, and a predefined number of wind speedmicro-forecasts at equal time intervals beginning with the specifiedpast time, respectively; determining, by the computer, if one or moredata measurements associated with the received historical electricalpower output measurements or the received historical wind speedmicro-forecasts is missing; in response to determining the one or moredata measurements associated with the received historical electricalpower output measurements or the received historical wind speedmicro-forecasts is missing, generating the one or more missing datameasurements using a linear interpolation scheme; converting, by thecomputer, the historical wind speed micro-forecasts to wind power outputvalues; generating, by the computer, based on the historical electricalpower output measurements and the wind power output values, a trainedmachine learning model for predicting wind power output of the windturbine, wherein the machine learning model is one of: a regressionneural network, a support vector regression (SVR) model, or a linearregression model; receiving real-time electrical power outputmeasurements of the wind turbine and real-time wind speedmicro-forecasts for the geographic location of the wind turbine, whereinthe real-time electrical power output measurements of the wind turbinecomprise a predefined number of measurements at equal time intervals,ending at the current time, and wherein the real-time wind speedmicro-forecasts for the geographic location of the wind turbine comprisea predefined number of wind speed micro-forecasts at equal timeintervals, ending at the current time, and a predefined number of windspeed micro-forecasts at equal time intervals, beginning with thecurrent time; converting, by the computer, the real-time wind speedmicro-forecasts to real-time wind power output values, wherein thehistorical wind speed micro-forecasts are converted to wind power outputvalues by one of: a manufacturer's power curve for the wind turbine, ora machine learning model trained to convert wind speed to wind power,based on historical wind speed measurements at the wind turbine andhistorical electrical power output measurements of the wind turbine;outputting, by the computer, using the trained machine learning modelwith the real-time electrical power output measurements of the windturbine, the real-time wind power output values, a wind power outputforecast for the wind turbine at a future time; determining, by thecomputer, that an oversupply of wind power would be generated, based inpart on the predicted wind power output of the wind turbine; andcurtailing, by the computer, wind power output of the wind turbine.